_zimfw_source_zimrc() {
<%= render_all("src/functions/*.erb") %>
  {
    local -r ztarget=${ZIM_CONFIG_FILE:-<%= home %>/.zimrc} _zflags=${1}
    local -i _zfailed=0
    if ! source ${ztarget} || (( _zfailed )); then
      print -u2 -R $'<%= red %>Failed to source <%= bold %>'${ztarget}$'<%= normal %>'
      return 1
    fi
    if (( _zflags & 1 && ${#_znames} == 0 )); then
      print -u2 -R $'<%= red %>No modules defined in <%= bold %>'${ztarget}$'<%= normal %>'
      return 1
    fi
    # Remove all from _zfpaths, _zfunctions and _zcmds with disabled root dirs prefixes
    local zroot_dir zpre
    for zroot_dir in ${_zdisabled_root_dirs}; do
      zpre=${zroot_dir}$'\0'
      _zfpaths=(${_zfpaths:#${zpre}*})
      _zfunctions=(${_zfunctions:#${zpre}*})
      _zcmds=(${_zcmds:#${zpre}*})
    done
  } always {
    unfunction zmodule
  }
}
